package Work;

public class Main2 {
    //双指针移除重复项
    public int removeElement(int[] nums, int val) {
        if(nums.length == 1 && nums[0] == val){
            return 0;
        }
        int len = nums.length;
        int left = 0;
        int right = len - 1;
        //双指针
        while(left <= right){
            //如果左指针等于val，右指针不等于val
            if(nums[left] == val && nums[right] != val){
                nums[left] = nums[right];
                right--;
                left++;
                len--;
            }
            //如果右指针等于val，左指针不等于val
            else if(nums[left] != val && nums[right] == val){
                left++;
                right--;
                len--;
            }
            //如果两边都等于val
            else if(nums[left] == val && nums[right] == val){
                right--;
                len--;
            }
            //如果两边都不等于val
            else{
                left++;
            }
        }
        return len;
    }
}
